// 边框样式
KindEditor.plugin('bordertype', function(K) {
  var self = this, name = 'bordertype';
  self.clickToolbar(name, function() {
    var blocks = self.lang('bordertype.bordertype'),
      // 获取当前选中开头节点;
      cntNode = self.cmd.range.startContainer
    // 获取当前选中段落;
    while(true){
      // 收敛条件, 当cntNode为div标签, 或者父标签为body;
      if("DIV" == cntNode.nodeName || "BODY" == cntNode.parentNode.nodeName){
        break
      }
      cntNode = cntNode.parentNode
    }
    // 查看当前选中段落样式;
    curVal = ''
    if('DIV' == cntNode.nodeName){
      curVal = cntNode.getAttribute("class")
    }
    menu = self.createMenu({
      name : 'bordertype',
      width : self.langType == 'en' ? 200 : 150
    });
    for(let key  in blocks){
      let val = blocks[key]
      menu.addItem({
        title : '<span class="' + key + '" style="font-size: 16px" unselectable="on">' + val + '</span>',
        height : 30,
        checked : (curVal === key || curVal === val),
        click : function() {
          // 外层标签, 如果是div, 则直接赋值class样式
          if("DIV" == cntNode.nodeName){
            // 如果要取消样式, 则删除div标签;
            if(key == 'none'){
              while(cntNode.firstChild){
                cntNode.before(cntNode.firstChild)
              }
              cntNode.remove()
            }
            else {
              cntNode.setAttribute("class", key);
            }
          }
          // 如果外层不是div标签, 且不是取消边框, 则添加div标签;
          else if (key != 'none'){
            var newEl = document.createElement('DIV')
            newEl.setAttribute("class", key)
            cntNode.parentElement.insertBefore(newEl, cntNode)
            // 当前选中的, startContainer -> endContainer, 全部放入div;
            while(true){
              newEl.appendChild(cntNode)
              if (cntNode == self.cmd.range.endContainer || cntNode == self.cmd.range.endContainer.parentElement){
                break
              }
              cntNode = cntNode.parentElement.nextElementSibling
            }
//								newEl.innerHTML = cntNode.outerHTML || cntNode.textContent
//								cntNode.replaceWith(newEl)
          }
          self.hideMenu();
        }
      })
    }
  })
})
